Skeleton driven transformations for an OpenMP compiler
نویسندگان
چکیده
In this paper we present a technique based on code templates, oriented to source to source code transformations for OpenMP parallelization. Our goal is to provide an OpenMP compilation infrastructure that includes a reconfigurable code generation phase, targetting different OpenMP runtime systems or explore different translation strategies for OpenMP constructs. We describe the main OpenMP transformations needed in any OpenMP compiler as well as the characteristics in the code generation phase dependant on the target runtime system. Our implementation has been done in the Open64 compiler infrastructure. We have added a new compiler phase, which takes a file containing WHIRL intermediate representation generated from source code, and applies transformations at specific points, indicated by OpenMP directives. Each OpenMP directive has a source code template associated.
منابع مشابه
Automatic Skeleton-Based Compilation through Integration with an Algorithm Classification
This paper presents a technique to fully automatically generate efficient and readable code for parallel processors. We base our approach on skeleton-based compilation and ‘algorithmic species’, an algorithm classification of program code. We use a tool to automatically annotate C code with species information where possible. The annotated program code is subsequently fed into the skeleton-base...
متن کاملMercurium: Design Decisions for a S2S Compiler
Current research on heterogeneous multiand manycore architectures requires powerful compilers. They must provide flexibility to try new language constructs, and be extensible, to increase the capacity of experimentation with different program transformations. And they must be easy to use, to reduce as much as possible the introduction of defects in the transformations, and allow rapid prototypi...
متن کاملNanos Mercurium: a Research Compiler for OpenMP
OpenMP is still in the process of being defined and extended to broad the range of applications and parallelization strategies it can be used for. The proposal of OpenMP extensions may require the implementation of new features in the runtime system supporting the OpenMP parallel execution and modifications in an existing OpenMP compiler, either at the front end (parsing of new directives and c...
متن کاملBasic skeletons in llc
llc is a high-level parallel language that provides support for some of the most widely used algorithmic skeletons. The language has a syntax based on OpenMP-like directives and the compiler uses direct translation to MPI to produce parallel code. To evaluate the performance of our prototype compiler we present computational results for some of the skeletons available in the language on differe...
متن کاملA Compile - Time Openmp Cost Model
OpenMP is a de facto API for parallel programming in C/C++ and Fortran on shared memory and distributed shared memory platforms. It is also being increasingly used with MPI to form a hybrid programming model and is expected to be a promising candidate to exploit emerging multicore architectures. An OpenMP cost model is an analytical model that reflects the characteristics of OpenMP applications...
متن کامل